'''
这段代码使用 matplotlib 库绘制了上海和北京两个城市在 60 分钟内的温度变化图，并将图形保存为文件。
'''

# 导入 matplotlib.pyplot 库，用于绘制图形
import matplotlib.pyplot as plt
# 导入 random 库，用于生成随机数
import random

# 设置中文字体，从黑体、宋体、微软雅黑中依次查找可用字体
plt.rcParams["font.family"] = ["SimHei","SimSun","Microsoft YaHei"]

# 创建一个包含 0 到 59 的整数序列，代表 60 个时间点
x = range(60)
# 为上海生成 60 个介于 15 到 25 之间的随机浮点数，作为上海每个时间点的温度
y_shanghai = [random.uniform(15, 25) for i in x]
# 为北京生成 60 个介于 1 到 10 之间的随机浮点数，作为北京每个时间点的温度
y_beijing = [random.uniform(1, 10) for i in x]

#创建画布
fig,axes=plt.subplots(nrows=1,ncols=2,figsize=(15,7),dpi=100)

#2.绘制图像
axes[0].plot(x,y_shanghai,label='上海')
axes[1].plot(x,y_beijing,color='r',linestyle='--',label='北京')

#添加x,y刻度
x_ticks_label=[f"{i}分" for i in x]
y_ticks=range(40)

#修改x、y坐标刻度显示
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])

#添加网格显示
axes[0].grid(True,linestyle='--',alpha=0.5)
axes[1].grid(True,linestyle='-',alpha=0.5)

#添加描述信息
axes[0].set_xlabel('时间')
axes[0].set_ylabel('温度')
axes[0].set_title('中午某城市温度变化图',fontsize=20)
axes[1].set_xlabel('时间')
axes[1].set_ylabel('温度')
axes[1].set_title('中午某城市温度变化图',fontsize=20)

#图像保存
plt.savefig(r'.\数据分析\matplotlib画图\b.png')

#显示图例
axes[0].legend(loc='best')
axes[1].legend(loc='best')

#显示图像
plt.show() 